package vue;

import javax.swing.JPanel;
import modele.Joueur;

/**
 *
 * @author gervaila
 */
public abstract class PanneauLateral extends JPanel {

	/**
	 * le panel d'info du joueur 1
	 */
	protected InfosPanel infosPanelJoueur1;
	/**
	 * le panel d'info du joueur 2
	 */
	protected InfosPanel infosPanelJoueur2;
	/**
	 * le joueur 1
	 */
	protected Joueur joueur1;
	/**
	 * le joueur 2
	 */
	protected Joueur joueur2;
	/**
	 * l'aire de jeu
	 */
	protected AireDeJeu aire;

	/**
	 * Crée un nouveau PanneauLateral
	 *
	 * @param joueur1 le joueur 1
	 * @param joueur2 le joueur 2
	 * @param aire l'aire de jeu
	 * @param iJ1 le panel d'info du joueur 1
	 * @param iJ2 le panel d'info du joueur 2
	 */
	public PanneauLateral(Joueur joueur1, Joueur joueur2, AireDeJeu aire, InfosPanel iJ1, InfosPanel iJ2) {
		this.joueur1 = joueur1;
		this.joueur2 = joueur2;
		this.aire = aire;
		this.infosPanelJoueur1 = iJ1;
		this.infosPanelJoueur2 = iJ2;
		Fenetre.ajouterDansPanel(this, iJ1);
		iJ1.activerPanel();
	}

	/**
	 *
	 * @return le panel d'info du joueur courant
	 */
	public InfosPanel getInfoPanelCourant() {
		Joueur joueurCourant = aire.getEcouteur().getJoueurCourant();
		if (joueurCourant == joueur1) {
			return infosPanelJoueur1;
		} else {
			return infosPanelJoueur2;
		}
	}

	/**
	 * Change le panel d'info de joueur affiché dans la panneau lateral
	 */
	public void inverserPanelJoueur() {
		Joueur joueurCourant = aire.getEcouteur().getJoueurCourant();
		if (joueurCourant == joueur1) {
			this.removeAll();
			Fenetre.ajouterDansPanel(this, infosPanelJoueur1);
			infosPanelJoueur1.activerPanel();
		} else {
			this.removeAll();
			Fenetre.ajouterDansPanel(this, infosPanelJoueur2);
			infosPanelJoueur2.activerPanel();
		}
	}

	/**
	 * Actualise le panel d'info du joueur courant
	 */
	public void actualiserPanelJoueur() {
		Joueur jCourant = aire.getEcouteur().getJoueurCourant();
		if (jCourant == joueur1) {
			infosPanelJoueur1.actualiserPanel();
		} else {
			infosPanelJoueur2.actualiserPanel();
		}
	}
}
